/*
 * @Project: Canvas for all
 * @description: Este arquivo tem como finalidade conter todas as funções utilizadas dentro da página principal
 * @file: home.js
 */

/*
 * #Construtor 
 * @author: Leidson Cruz 
 * @name: onDeviceReady / init
 * @description: Incluir aqui as funções para quando a página inicializar
 */
document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {

	init();
	navigator.splashscreen.hide();
}



$("#home").on("pageshow", function(event, ui) {
	$('#appHeader > h1').empty();
});

/*
 * #Função @author: Leidson Cruz @name: init @description: Função que carrega os
 * dados iniciais da tela principal
 */
function init() {
	var db = window.openDatabase("CanvasForAll8", "1.16", "Canvas Mobile",
			2000000);
	db.transaction(function(tx) {
		tx.executeSql('SELECT * FROM CANVAS ORDER BY data_criacao DESC',[],
								function(tx, results) {
									var len = results.rows.length;
									for ( var i = 0; i < len; i++) {
										
										$('ul.projetos').append('<li class="proj_'+ results.rows.item(i).id_canvas + '">'
																+ '<div class="proj-items">'
																	+ '<a href="#" onclick="hookLoadPage('+ results.rows.item(i).id_canvas+')">'
																		+ '<img src="images/items.png" />'
																		+ '<div class="title">'+ results.rows.item(i).titulo + '</div>'
																	+ '</a>'
																+ '</div>'
																	+ '<a href="#" onclick="delProject('+ results.rows.item(i).id_canvas+ ')" class="icon-delete" data-role="button" data-icon="delete" data-iconpos="notext">Delete</a>'
															+ '</li>');
										$('#home').trigger("create");

									}
								}, null);
			});

}


/*
 * #Função @author: Leidson Cruz @name: LoadPage @params: id_projeto INTEGER
 * @description: Dar o load na página do canvas
 */

function loadPage(id_projeto, titulo) {

	
	$.mobile.changePage('pages/canvas.html', {
		dataUrl : "pages/canvas.html?id=" + id_projeto,
		data : {
			'id' : id_projeto,
			'titulo' : titulo
			
		},
		reloadPage : false,
		changeHash : true
	});


}



/*
 * #Função @author: Leidson Cruz @name: NewProject @description: Criar um novo
 * projeto
 */

function newProject() {
	var titulo = prompt("Digite o título do projeto:");

	if (titulo != null && titulo.length == 0) {
		window.alert('É necessário informar um título para o Canvas.');
		titulo = prompt("Digite o título do projeto:");
	}

	if (titulo != null) {
		var db = window.openDatabase("CanvasForAll8", "1.16", "Canvas Mobile",
				2000000);
		titulo =  maiuscula(titulo);
		db.transaction(function(tx) {tx.executeSql("INSERT INTO CANVAS (titulo, id_perfil_responsavel, data_ultima_atualizacao) VALUES (?,?,datetime('now'))",
									[ titulo, 1 ],function(tx, results) {
													db.transaction(function(tx) {
														tx.executeSql('SELECT * FROM CANVAS ORDER BY id_canvas DESC LIMIT 1',
																	[],function(tx,results) {
																		var len = results.rows.length;
																		for ( var i = 0; i < len; i++) {
																			$('ul.projetos').append('<li class="proj_'+ results.rows.item(i).id_canvas+ '">'
																										+ '<div class="proj-items">'
																											+ '<a href="#" onclick="hookLoadPage('+ results.rows.item(i).id_canvas+ ')">'
																												+ '<img src="images/items.png" />'
																												+ '<div class="title">'+ results.rows.item(i).titulo + '</div>'
																											+ '</a>'
																										+ '</div>'
																										+ '<a href="#" onclick="delProject('
																												+ results.rows.item(i).id_canvas+ ')" class="icon-delete" data-role="button" data-icon="delete" data-iconpos="notext">Delete</a>'
																									+ '</li>');
																			$('#home').trigger("create");
																			loadPage(results.rows.item(i).id_canvas, results.rows.item(i).titulo);
																		}
																	}, null);
												});
									});
				});
	}
}





/*
 * #Função @author: Leidson Cruz @name: DelProject @description: deletar um
 * projeto
 */

function delProject(id_projeto) {

	function showConfirm(){
		navigator.notification.confirm(
	            'Deseja deletar o projeto?',  // message
	            onConfirm,              // callback to invoke with index of button pressed
	            'Canvas For All',            // title
	            ['Cancelar','Confirmar']          // buttonLabels
	        );
	}
	
	showConfirm();


	function onConfirm(button){
		
		if (button == 2) {
				var db = window.openDatabase("CanvasForAll8", "1.16", "Canvas Mobile",
						2000000);

				db.transaction(function(tx) {
							tx.executeSql("DELETE FROM CANVAS WHERE id_canvas = ?",
											[ id_projeto ],
											function(tx, results) {
												db.transaction(function(tx) {
															tx.executeSql("DELETE FROM POSTIT WHERE id_canvas = ?",
																			[ id_projeto ],
																			function(tx, results) {
																				$('ul.projetos > li.proj_'+ id_projeto).remove();
																			});
														});
											});
						});
		}
	}

}

function maiuscula(str) {

		
	str = verifySize(str);

	var strSplit = str.split(" ");

	var wordsToIgnore = [ "o","a","os","as","do","da", "de", "à", "um","uns","uma","umas", "em", "e"];

	var retorno = "";

	for (var i = 0; i < strSplit.length; i++) {

		retorno = retorno.concat(" ", camelCase(strSplit[i]));
	};

	function camelCase(str){
		for (var i = 0; i < wordsToIgnore.length; i++) {
			if(str == wordsToIgnore[i]){
				return str;
			}
		};
		return str.toLowerCase().replace(/(?:^|\s)\w/g,function(match){
			return match.toUpperCase();
		}); 
	}

	return retorno;
}


function hookLoadPage(id_projeto){
	// Recuperar titulo
		var db = window.openDatabase("CanvasForAll8", "1.16", "Canvas Mobile",
			2000000);

		db.transaction(function(tx) {
		tx.executeSql('SELECT titulo FROM CANVAS WHERE id_canvas = ?',[id_projeto],
								function(tx, results) {
									loadPage(id_projeto,results.rows.item(0).titulo)
								}, null);
			});

	// Fim Recuperar titulo
}

function verifySize(str){

	
	strArray = str.split("");
	strReturn = "";

	if(strArray.length > 40){
		for (var i = 0; i < 40; i++){
			strReturn = strReturn.concat(strArray[i]);
		}
	} else {
		return str;
	}
	return strReturn;
}




